#!/bin/bash

# 鱼C论坛闪拍监控 - 后台运行脚本
# 作者: SOLO Coding
# 用途: 在后台运行监控程序

set -e  # 遇到错误立即退出

# 获取脚本所在目录的上级目录（项目根目录）
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
cd "$PROJECT_DIR"

# 定义PID文件和日志文件
PID_FILE="$PROJECT_DIR/fishc_monitor.pid"
LOG_FILE="$PROJECT_DIR/logs/fishc_monitor.log"

echo "=== 鱼C论坛闪拍监控 - 后台运行 ==="
echo "工作目录: $PROJECT_DIR"
echo "启动时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""

# 检查是否已经在运行
if [ -f "$PID_FILE" ]; then
    PID=$(cat "$PID_FILE")
    if ps -p "$PID" > /dev/null 2>&1; then
        echo "⚠️  监控程序已在运行 (PID: $PID)"
        echo "如需重启，请先运行: ./stop_monitor.sh"
        exit 1
    else
        echo "🧹 清理过期的PID文件..."
        rm -f "$PID_FILE"
    fi
fi

# 检查Python和依赖
if ! command -v python3 &> /dev/null; then
    echo "❌ 错误: 未找到Python3"
    echo "请先运行: ./install_dependencies.sh"
    exit 1
fi

# 检查监控脚本
if [ ! -f "fishc_monitor.py" ]; then
    echo "❌ 错误: 未找到监控脚本 fishc_monitor.py"
    exit 1
fi

echo "🚀 启动后台监控程序..."

# 确保logs目录存在
mkdir -p "$(dirname "$LOG_FILE")"

# 启动后台进程
nohup python3 fishc_monitor.py > "$LOG_FILE" 2>&1 &
PID=$!

# 保存PID
echo "$PID" > "$PID_FILE"

echo "✅ 监控程序已在后台启动"
echo "📋 进程ID: $PID"
echo "📄 日志文件: $LOG_FILE"
echo "🔧 PID文件: $PID_FILE"
echo ""
echo "管理命令:"
echo "  ./check_status.sh    # 检查运行状态"
echo "  ./stop_monitor.sh    # 停止监控"
echo "  tail -f $LOG_FILE    # 查看实时日志"
echo ""

# 等待一下确保进程启动
sleep 2

# 检查进程是否正常启动
if ps -p "$PID" > /dev/null 2>&1; then
    echo "🎉 监控程序启动成功！"
else
    echo "❌ 监控程序启动失败，请检查日志: $LOG_FILE"
    rm -f "$PID_FILE"
    exit 1
fi